
//保存传进来的vue实例
let _Vue = null
console.log(_Vue)
class VueRouter {
    constructor(options) {
        //   保存传进来的参数

        this.options = options
        //当前路由模式
        this.mode = options.mode || 'hash'
        switch (this.mode) {
            case 'hash':
                console.log('hash')
                break
            case 'history':

                break
            case 'abstract':
                break
        }

    }
    //初始化方法
    init(app) {
        console.log(app)
    }
}

VueRouter.install = (Vue) => {
    _Vue = Vue
    Vue.mixin({
        beforeCreate() {
            //当前this = Vue
            if (this.$options.router) {
                //当前是根实例，直接赋值給根实例的$router
                this._routerRoot = this
                this.$router = this.$options.router
            } else {
                //非根组件 也要把父级的_routerRoot保存到自身上
                this._routerRoot = this.$parent && this.$parent._routerRoot
                //把父级的$router 赋值給当前 $router
                this.$router = this._routerRoot.$router
            }
        }
    })
    Vue.component('RouterView', {})
    Vue.component('RouterLink', {})
}
// function createRouteMatcher() {

// }
// createRouteMatcher()


export default VueRouter